Tailwind CSS: Utility-First๋ก ๋์์ธ ์์ฐ์ฑ ๊ทน๋ํํ๊ธฐ
์ ํต์ ์ธ CSS ๋ฐฉ์์ ํด๋์ค ์ด๋ฆ์ ๊ณ ๋ฏผํ๊ณ ํ์ผ ์ฌ์ด๋ฅผ ์๋ค ๊ฐ๋ค ํ๋ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฝ๋๋ค. Tailwind CSS๋ ๋ฏธ๋ฆฌ ์ ์๋ ์ ํธ๋ฆฌํฐ ํด๋์ค๋ฅผ HTML์ ๋ฐ๋ก ์ ํ, ๋์์ธ ์์คํ ์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๊ตฌ์ถํ๊ฒ ํด์ฃผ๋ ํ๋ ์์ํฌ์ ๋๋ค.
1. Tailwind CSS์ ํต์ฌ ์ฒ ํ (Utility-First)
๋ณ๋์ CSS ํ์ผ์ ๋ง๋ค์ง ์๊ณ , HTML ํ๊ทธ์ class ์์ฑ์ ์คํ์ผ ๊ด๋ จ ํด๋์ค๋ฅผ ์ง์ ๋์ดํฉ๋๋ค.
- ๊ธฐ์กด ๋ฐฉ์:
.btn-primaryํด๋์ค๋ฅผ ๋ง๋ค๊ณ CSS ํ์ผ์ 10์ค์ ์ฝ๋๋ฅผ ์์ฑ. - Tailwind ๋ฐฉ์:
class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"
2. ์ฃผ์ ์ฅ์
- ํด๋์ค๋ช
๊ณ ๋ฏผ ํด๊ฒฐ:
wrapper,container-inner๊ฐ์ ์ด๋ฆ์ ์ง์ ํ์๊ฐ ์์ต๋๋ค. - ๋น ๋ฅธ ํผ๋๋ฐฑ: ์ฝ๋๋ฅผ ์์ฑํ๋ ์ฆ์ ๋ธ๋ผ์ฐ์ ์์ ๋์์ธ ๋ณํ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
- ๋ฐ์ํ ๋์์ธ:
md:flex,lg:block์ฒ๋ผ ์ ๋์ฌ๋ง์ผ๋ก ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ๊ฐ๋จํ ์ฒ๋ฆฌํฉ๋๋ค. - ์ผ๊ด๋ ๋์์ธ ์์คํ : ์ ํด์ง ์์น(์์, ๊ฐ๊ฒฉ ๋ฑ)๋ง ์ฌ์ฉํ๊ฒ ๋๋ฏ๋ก ๋์์ธ์ด ํต์ผ๋ฉ๋๋ค.
3. ๋คํฌ ๋ชจ๋์ ์ธํฐ๋์
ํ ์ผ์๋๋ ๋ณต์กํ ๊ธฐ๋ฅ์ ํด๋์ค ํ๋๋ก ์ฒ๋ฆฌํฉ๋๋ค.
<!-- ๋คํฌ ๋ชจ๋ ์ง์ ์์ -->
<div class="bg-white dark:bg-slate-800 text-black dark:text-white">
์๋
ํ์ธ์!
</div>
<!-- ํธ๋ฒ ํจ๊ณผ -->
<button class="transition duration-300 transform hover:scale-110">
ํ๋๋๋ ๋ฒํผ
</button>4. ์ ํ ์ผ์๋์ผ๊น?
์ฒ์์๋ ํด๋์ค๊ฐ ๋๋ฌด ๊ธธ์ด์ ธ์ ๊ฐ๋ ์ฑ์ด ๋๋น ๋ณด์ผ ์ ์์ต๋๋ค. ํ์ง๋ง ์ปดํฌ๋ํธ ์ค์ฌ ๊ฐ๋ฐ(React, Vue ๋ฑ) ํ๊ฒฝ์์๋ ์คํ์ผ์ด ์ ํ์ง ํ๊ทธ ์์ฒด๊ฐ ์ปดํฌ๋ํธ๋ก ๋ถ๋ฆฌ๋๋ฏ๋ก, ์ค์ ๊ฐ๋ฐ ์์ฐ์ฑ์ ๋น์ฝ์ ์ผ๋ก ํฅ์๋ฉ๋๋ค.
5. ๊ฒฐ๋ก
Tailwind CSS๋ ๊ฐ๋ฐ์๊ฐ ๋์์ธ์ ๋ํด ๊ฐ๋ ์ฌ๋ฆฌ์ ์ฅ๋ฒฝ์ ๋ฎ์ถฐ์ค๋๋ค. ํนํ Shadcn/ui ๊ฐ์ ํ๋์ ์ธ ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ํ ์ผ์๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์์ด, 2026๋ ํ์ฌ ๋ฐ๋์ ์ตํ์ผ ํ ๋๊ตฌ์ ๋๋ค.